In recent years, it has become increasingly desirable for businesses to quantify their printing and print media costs, both for the purpose of cost allocation and to allow them to recoup related expenses. This is of particular concern for professionals such as architects and engineers, since the services provided by such professionals may require the printing of blueprints and other large-format technical documents. The printing of such documents is costly, and thus the ability to recoup these costs through a print tracking system is of great value.
Prior to describing the attributes of existing print tracking systems, the general layout of a computer network in which such a system may be installed will be described. An office computer network generally contains each of the following elements:                1. a plurality of client computers from which print jobs originate;        2. a network through which the client computers and other system components are interconnected;        3. one or more users who generate print jobs while logged in to the computer network through a client computer;        4. print jobs, which possess inherent attributes such as quantity and page dimensions;        5. a printer, from which printed physical media is physically printed; and        6. a server computer, which is responsible for queuing and directing traffic to the printer.In addition, many office computer networks that include print tracking also include the following additional components:        1. a component designed to detect print activity and extract relevant print job information;        2. A graphical user interface (GUI) for providing billing information (the billing dialog) to each user;        3. a central database to which data about print activity is recorded;        4. a management interface from whence the print tracking system can be controlled; and        5. a reporting interface through which print activity data can be viewed.        
Any print tracking system must both detect print activity and bill print activity or, in other words, both quantify and qualify print activity. Maintaining a factual record describing all print activity on a computer network is the first requirement of a print tracking solution. This record generally includes all of the defining data for each print job that is submitted to the server. This data generally includes, but is not limited to, the name of the print server that directed the document to the printer; the name of the software application from which the print job originated; the filename of the document to be printed; the name of the computer from which the print job originated; the username of the individual who submitted the print job; the name of the printer to which the print job was sent; the number of printed pages per copy; the number of copies to be made; the height and width of the printed document; and the date and time of the print job request. This type of data is considered factual and inherent to a print job, and can be extracted automatically from a print job without user intervention.
Once reliable print activity detection has been established, it is necessary to elaborate on the resultant data records for accounting purposes. These records are factual, but lack information pertinent to accounting or “qualification.” Data not inherent to a print job must be supplied by a user and then appended to an existing factual record. Such data may include, but is not limited to, the related project number; the related client number; the sub-project or phase number; the status of the project; and any additional user comments. These appended data fields allow the office administration or accounting personnel to generate invoices, cost estimates, and other business metrics to assist in the overall efficiency of the office and to allow the office to recoup what would otherwise be overhead costs.
Although the proper entry of qualification (billing-related) data is necessary in order for a print tracking system to achieve its goals, users are generally reluctant to enter such data. Users may see the process of entering such data as time-consuming or as a distraction from their immediate goals of completing a technical or professional project. Print tracking systems must therefore employ some sort of enforcement mechanism in order to ensure that users supply the qualification data in a complete and timely manner. Two enforcement methods have generally been used in existing print tracking systems.
The first enforcement method, which may be referred to as the “hostage” method, is to interrupt the print job and prevent it from completing until the user has adequately complied with the print tracking system's qualification data requirements. Thus for example a user who requests a print job may immediately be presented with a GUI (graphical user interface) in which to provide the necessary qualification data. If the user does not enter all required data, the user's print job will not be sent to the server for execution.
The second enforcement method, which may be referred to as the “quarantine” method, allows the print job to leave the client machine in an apparently normal manner. At the server, however, the print job is interrupted and placed in a holding area. A GUI at the client computer allows the user to inspect the contents of the holding area and bill the print jobs that are waiting. When the user has adequately complied with the print tracking system, the server then completes the print job. As with the enforcement method, the user's print job will not be completed until the required qualification data has been entered.
Another means by which existing print tracking systems may be distinguished is by the location at which they process data related to the print job, either at the client computer or at the server. These may be referred to as “client-side” and “server-side” (or “network-based”) models. On the client-side model, the acts of extracting the factual information describing a print job and writing that information to a database occur on the client computer from which the print job originated. On the server-side model, the acts of extracting the factual information describing a print job and writing that information to a database occur on the server. It may be noted that using the client-side model, the process of extracting and writing this information must reside on each of what is typically a plurality of client computers, whereas when using the server-side model the process resides on what is typically a single server.
In a print-tracking system using the client-side model, print tracking occurs entirely at the client computer. The software installed at the client computer detects print activity and extracts its data as it leaves the client computer. The software will then initiate a billing dialog, which includes a GUI. This GUI allows the user logged in at that client computer to enter the appropriate billing information for that particular print job. A record of the print job and all of its pertinent data may then be written to a central database for later review.
One limitation of the client-side model print tracking systems is that they include no means of accounting for cases where a print job fails to complete. Since all information has been entered at the point where the print job is forwarded to the server, the client computer software will not know if problems occur during the actual printing of the job. The result may be a cost record in the central database where in fact no print job was actually completed. Where a print job is sent but fails due to a technical problem with the printer, network, or server, and that print job is later resent after the problem is corrected, the central database may contain a double entry for this print job.
Another limitation of the client-side print tracking systems is that they generally use the “hostage” enforcement model, thereby requiring the billing action to occur before the print job is sent. In order to accomplish this, the print tracking system will interrupt the print job to allow the user to enter billing information. The user cannot proceed until this information has been entered. If for any reason the user does not supply billing information about a print job, then the user's print job will not be recorded. Thus a dilemma of user enforcement with the system arises. If the print tracking system were to allow the print job to print before the user has supplied the billing information, then the user may opt not to comply with the system by entering the required information. The result would be factual discrepancies in the recorded data and missed opportunities to recoup costs associated with printing.
Still another limitation of client-side tracking is that the process of print detection is delegated to the individual client computers, which results in a limited, one-to-one tracking method. This means that by installing one instance of the print tracking program, the office has the ability to track only one user's print jobs. Two installed instances will track print jobs issuing from two client computers, and so on. Whenever new software upgrades or patches become available, they must be installed separately on every client computer.
Finally, many client-side print tracking systems are subject to problems arising from other computer applications that use non-standard printing routines. For example, on computers running the popular Windows operating system from Microsoft Corporation of Redmond, Washington, a number of Computer Aided Drafting (CAD) and other graphics applications bypass the Windows standard printing system. A client-side print tracking system cannot track printing from these nonstandard applications without the use of a “plug-in” application. A plug-in uses the Application Programming Interface (API) of the relevant software program (for example, a CAD application) to detect printing within that application, then completes the billing process in the manner previously described. If an application does not use standard printing techniques and its vendor does not offer an API, then the system will be unable to track print jobs originating from within that application. In any event, both the use of a plug-in and the development of an API increase the cost and complexity of any such print tracking system even if it can be made operable. Systems that use plug-ins, moreover, are more susceptible to changes in the various APIs of the applications they seek to track. As new versions of the APIs are released, new plug-ins must be created, tested and distributed, further increasing the cost of building and maintaining such a tracking system, and increasing system downtime as new plug-in versions are installed.
AEG:AutoTRACK, which is sold by AEG:Technologies, Inc. of Richardson, Tex., is an example of a print tracking software system that requires a plug-in for each application for which print tracking is desired. SmartPlot, another print tracking software package that is sold by Technesis, Inc. of Mountain View, Calif., has taken the client side tracking solution a bit further than AutoTrack by detecting prints on the client computer operating system. SmartPlot is, therefore, able to detect print activity on most Windows-based programs without application plug-ins. There are, however, a great many applications that do not use the native operating system print process on the client computer. As a result, a great many application-specific plug-ins must be continually developed and updated in order for SmartPlot to offer “comprehensive” print tracking. Even with these stop-gap solutions, there are any number of applications that circumvent the operating system print process for which SmartPlot's developer offers no plug-in.
The network-based, or server-side, model of print tracking is an alternative approach that is implemented in some existing print tracking systems. Because a typical office has only a few print devices shared via a network, but has a multitude of client computers through which users may wish to share these resources, it is common for a user to send a print job to a printer that is physically attached to another computer. Compared to client-side print tracking, network-based print tracking offers a reliable method for detecting such print jobs and accurately recording them. In such a scenario, the onus of detection is on the server rather than the various client computers.
In the network-based print tracking process, the application plug-in of the client-side system is no longer required. Instead, the more scalable method of remote print queue monitoring may be applied. Such systems may transcend the “one-to-one” tracking ratio offered by client side tracking. This means that because the software is installed on the computer that is directly attached to the physical printer, any print jobs going to the printer will be tracked. In essence, the network-based tracking system facilitates a “one-to-many” relationship of users tracked to installed software sets.
While the network-based approach offers certain benefits over client-side print tracking, it also poses several new hurdles for the system architecture. The core design dilemma in this scenario is to first detect the print job at the server computer to which the printer is connected, then to discover the computer from which it originated, and finally to initiate the billing dialog at this originating computer. It is this last step of initiating the billing dialog that poses the most problems and in turn the widest range of attempted solutions.
All existing solutions to the problem of initiating the billing log in a network-based tracking system extract the factual information at the print server, only to relay it back to the originating machine. While the server waits for information from the user to be entered at the client computer, it must keep the print job “quarantined” to ensure that users comply with the system and supply required billing information. Thus network-based print tracking systems use the “quarantine” method of enforcement. Only after the user supplies the required billing information is the record placed into the database and the print job released to the printer. While this method is a marginal improvement over preceding client-based solutions, it still marries the act of billing a print job with the act of tracking a print job. Therefore, you will only be able to track those computers that have a current version of the required client software installed. If, for example, client computers without the necessary client billing software were to print to a monitored printer, they will be unable to free their print job from the quarantine and will thereby lock up system resources.
PrintLog Manager, which is sold by Equitrac Corporation of Coral Gables, Fla., is a popular network-based print tracking system. PrintLog Manager quarantines print jobs until users supply the proper billing information. The act of billing a print is, therefore, synonymous with the act of recording a print job. If for any reason the system fails to function, however, printing is disabled and all work must be halted. PrintSuite, which is sold by Infinity Squared Technologies, Inc. of Burnaby, British Columbia, Canada, also uses a quarantine methodology for tracking and billing prints. The server-installed component of the PrintSuite software halts print activity and prompts a user for billing information before releasing the print job to a printer.
A critical limitation of all existing print tracking systems, both client-side and server-side, is that they operate in what may be termed a “synchronous” mode. In a synchronous print tracking system, the act of writing data about a print job to a central database takes place when the print is detected and information is extracted and stored. The processes of detection of the print job and billing are thus tightly coupled together; in other words, the act of supplying billing information is also the act of placing a record in the database from the user's point of view. Such systems treat both tracking and billing as an integral part of the printing process. The desirability of decoupling the tracking and billing processes to create an “asynchronous” print tracking system, and the advantages that result from such decoupling, have gone unrecognized.
The limitations of the prior art are overcome by the present invention as described below.